// pages/detail/detail.ts
const api = require('../../utils/api');
const util = require('../../utils/common');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isShow: false,
    placeholder: '写点评论',
    postId: '',
    parentId: 0,
    comments: [],
    info: {},
    currentComment: {},
    loading: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getDetail(options.id);
    this.getComment(options.id);
    this.setData({
      postId: options.id
    })
  },
  // 获取文章详情
  getDetail (id) {
    api.getArticlebyID(id).then(res => {
      if (typeof res == 'object') {
        res.date = res.date && util.transformDate(res.date);    
        res.content.rendered = util.handleArticleImg(res.content.rendered);
        this.setData({
          info: res,
          authorId: res.author,
          loading: false
        })
      }
    })
  },
  // 获取当前文章评论
  getComment (id) {
    api.getComments({post: id}).then(res => {
      if (res && Array.isArray(res)) {
        const data = util.organizeComments(res);
        this.setData({
          comments: data,
          loading: false
        })
      }
    })
  },
  // 回复评论
  handleReplyComments (e) {
    const name = e.detail.info.author_name;
    this.setData({
      placeholder: `@${name}`,
      isShow: true,
      postId: e.detail.info.post,
      parentId: e.detail.info.id
    })
  },
  // 发布评论
  handleAddComment(e) {
    api.addComments({
      content: e.detail.content,
      post: this.data.postId,
      author: e.detail.author,
      parent: this.data.parentId
    }).then(res => {
      if (res.id) {
        wx.showToast({
          title: '评论审核中，审核通过之后即可阅览',
          icon: 'none',
          duration: 2000
        })
        const that = this;
        setTimeout(function() {
          that.getComment(that.data.postId);
          that.setData({
            isShow: false,
          })
        }, 2000)
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  // 打开评论弹层
  onClickComment() {
    this.setData({
      isShow: true,
      placeholder: '写点评论...',
      parentId: 0
    })
  },
  // 关闭弹层
  handleClosePopup () {
    this.setData({
      isShow: false
    })
  }
})
